package com.ruihu.admin.module.business.task.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruihu.admin.module.business.task.domain.dto.SubtaskDefectDTO;
import com.ruihu.admin.module.business.task.domain.dto.SubtaskDefectQueryDTO;
import com.ruihu.admin.module.business.task.domain.entity.SubtaskDefectEntity;
import com.ruihu.admin.module.business.task.domain.vo.SubtaskDefectVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * [ 电芯缺陷关系表 ]
 *
 * @author Tony
 * @version 1.0
 * @company 瑞虎（南京）信息技术有限公司
 * @copyright (c)  瑞虎（南京）信息技术有限公司Inc. All rights reserved.
 * @date 2022-09-22 13:42:27
 * @since JDK1.8
 */
@Mapper
@Component
public interface SubtaskDefectDao extends BaseMapper<SubtaskDefectEntity> {

    /**
     * 分页查询
     * @param queryDTO
     * @return SubtaskDefectVO
    */
    List<SubtaskDefectVO> queryByPage(Page page, @Param("queryDTO") SubtaskDefectQueryDTO queryDTO);

    /**
     * 查询列表
     * @param queryDTO
     * @return
     */
    List<SubtaskDefectDTO> queryByList(@Param("queryDTO") SubtaskDefectQueryDTO queryDTO);

    /**
     * 根据任务ID和缺陷类型ID删除
     * @param subTaskId
     * @param defectTypeId
     */
    int deleteByDefectTypeId(@Param("subTaskId") Long subTaskId, @Param("defectTypeId") Long defectTypeId);

    /**
     * 根据任务ID和缺陷类型ID列表删除
     * @param subTaskId
     * @param defectTypeIdList
     * @return
     */
    int deleteByDefectTypeIdList(@Param("subTaskId") Long subTaskId, @Param("defectTypeIdList") List<Long> defectTypeIdList);

    /**
     * 根据任务ID删除
     * @param subTaskId
     */
    int deleteBySubTaskId(@Param("subTaskId") Long subTaskId);

    /**
      * 根据ID更新实体（忽略空值）
      */
    int updateByIdIgnoreEmptyValue(@Param("entity") SubtaskDefectEntity entity);

    /**
     * 根据ID更新实体
     */
    int updateById(@Param("entity") SubtaskDefectEntity entity);
}
